namespace Mockery.Core
{
    /// <summary>
    /// The active mockery state handler
    /// </summary>
    public interface IActiveMockeryState
    {
        /// <summary>
        /// The current state of the mockery
        /// </summary>
        MockeryState State { get; }

        /// <summary>
        /// mechanism to change the state according to mockery state-change rules
        /// </summary>
        /// <param name="mockeryState">target state</param>
        void SetState( MockeryState mockeryState);
    }
}